package palindromes;
import java.util.Scanner;
/**
 * @author Evgeny Pavlenko
 */
public class Palindrome {
	final static int MIN_LENGTH_STR=3;
	/**
	 * Ищет все подстроки палиндромы в строке
	 * @param string
	 * @return строка со всем палиндромами
	 */
	public static String getAllPalindromes(String string)
	{
		String substring;
		String palindromes="";
		for(int i=0;i<=string.length()-MIN_LENGTH_STR;i++)
		for(int j=i+MIN_LENGTH_STR;j<=string.length();j++)
			{
			substring=string.substring(i,j);
			if(isPalindrome(substring))
				palindromes+=String.format("%s\n", substring);				
			}
		return palindromes;
	}
	/**
	 *Проверяет является ли
	 *строка палиндромом  
	 */
	public static boolean isPalindrome(String string)
	{
		for(int i=0;i<string.length()/2;i++)
		{
			if(string.codePointAt(i)!=string.codePointAt(string.length()-1-i))
					return false;
		}
		return true;
	}
	public static void main(String[] args) {
		String string;
		Scanner scanner=new Scanner(System.in);
		do{
			System.out.println("Enter string...");
			string=scanner.nextLine();
			System.out.println("Palindromes in the string \""+string+"\":");
			System.out.print(getAllPalindromes(string));
			System.out.println("Again? y/n");
			}while (scanner.nextLine().equalsIgnoreCase("y"));
		scanner.close(); 
	}
}